Free Applicative Functor
https://arxiv.org/pdf/1403.0749.pdf
https://xuwei-k.hatenablog.com/entry/20150127/1422322757